package com.canyou.enums;

import lombok.Getter;

import java.util.Arrays;

/**
 * 资源类型(1.image,2.excel,3.word,4.pdf,5.zip)
 *
 * @author fy
 * @date 20/04/28 10:15
 */
@Getter
public enum MediaTypeEnum {

    /**
     * 文本
     */
    TXT(0, "txt"),

    /**
     * 图片
     */
    IMAGE(1, "image"),

    /**
     * Excel
     */
    EXCEL(2, "excel"),

    /**
     * word
     */
    WORD(3, "word"),

    /**
     * pdf
     */
    PDF(4, "pdf"),

    /**
     * 压缩包
     */
    ZIP(5, "zip"),
    ;

    /**
     * 根据 枚举类型值 获取对应类型枚举
     *
     * @param value
     * @return
     */
    public static MediaTypeEnum valueOf(final Integer value) {
        return Arrays.stream(MediaTypeEnum.values())
                .filter(enu -> enu.getValue().equals(value))
                .findFirst()
                .orElseThrow(() -> new RuntimeException("错误的资源类型"));
    }

    public static MediaTypeEnum nameOf(final String name) {
        return Arrays.stream(MediaTypeEnum.values())
                .filter(enu -> enu.getName().equals(name))
                .findFirst()
                .orElseThrow(() -> new RuntimeException("错误的资源类型"));
    }

    public static String getName(final Integer value) {
        return MediaTypeEnum.valueOf(value).getName();
    }

    MediaTypeEnum(Integer value, String name) {
        this.value = value;
        this.name = name;
    }

    private Integer value;
    private String name;

}
